#!/bin/bash
set -e  # 遇到错误立即退出脚本

# 1. 提前创建用户（解决configure阶段用户不存在的问题）
useradd -s /sbin/nologin -M subencai  # -M 不创建家目录，更符合服务用户特性

# 2. 创建存放nginx源码的目录并进入
mkdir -p /nginx
cd /nginx || exit  # 若目录切换失败则退出

# 3. 下载nginx源码包
curl -O https://nginx.org/download/nginx-1.26.1.tar.gz

# 4. 解压源码包
tar xf nginx-1.26.1.tar.gz
cd nginx-1.26.1 || exit  # 进入解压后的源码目录

# 5. 安装编译依赖（补充zlib-devel，完善功能支持）
yum install -y gcc pcre-devel openssl-devel zlib-devel

echo "依赖安装完成，开始配置编译参数..."

# 6. 配置编译参数（此时用户已创建，可正常引用）
./configure \
  --prefix=/usr/local/nginx-1 \
  --user=subencai \
  --group=subencai \
  --with-http_ssl_module \
  --with-http_v2_module \
  --with-threads \
  --with-stream \
  --with-http_stub_status_module

# 7. 多进程编译（根据CPU核心数调整，此处用2进程）
make -j 2

# 8. 安装到指定目录
make install

# 9. 配置环境变量并立即生效
echo 'PATH=/usr/local/nginx-1/sbin：$PATH' >> /root/.bashrc
source /root/.bashrc  # 让当前会话立即生效

# 10. 启动nginx
nginx  # 此时已能识别nginx命令（因环境变量已生效）

# 11. 关闭防火墙并禁用开机启动
systemctl stop firewalld
systemctl disable firewalld

# 12. 关闭SELinux（修正配置文件路径）
setenforce 0  # 临时关闭
sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config  # 永久关闭（标准路径）

echo "Nginx 1.26.1 安装完成，已启动。可通过服务器IP访问默认页面。"